{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "2f4df62e",
   "metadata": {},
   "source": [
    "# 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "370df2e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>sex</th>\n",
       "      <th>bmi</th>\n",
       "      <th>children</th>\n",
       "      <th>smoker</th>\n",
       "      <th>region</th>\n",
       "      <th>charges</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>female</td>\n",
       "      <td>27.900</td>\n",
       "      <td>0</td>\n",
       "      <td>yes</td>\n",
       "      <td>southwest</td>\n",
       "      <td>16884.92400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>18</td>\n",
       "      <td>male</td>\n",
       "      <td>33.770</td>\n",
       "      <td>1</td>\n",
       "      <td>no</td>\n",
       "      <td>southeast</td>\n",
       "      <td>1725.55230</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28</td>\n",
       "      <td>male</td>\n",
       "      <td>33.000</td>\n",
       "      <td>3</td>\n",
       "      <td>no</td>\n",
       "      <td>southeast</td>\n",
       "      <td>4449.46200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>33</td>\n",
       "      <td>male</td>\n",
       "      <td>22.705</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>northwest</td>\n",
       "      <td>21984.47061</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32</td>\n",
       "      <td>male</td>\n",
       "      <td>28.880</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>northwest</td>\n",
       "      <td>3866.85520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1333</th>\n",
       "      <td>50</td>\n",
       "      <td>male</td>\n",
       "      <td>30.970</td>\n",
       "      <td>3</td>\n",
       "      <td>no</td>\n",
       "      <td>northwest</td>\n",
       "      <td>10600.54830</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1334</th>\n",
       "      <td>18</td>\n",
       "      <td>female</td>\n",
       "      <td>31.920</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>northeast</td>\n",
       "      <td>2205.98080</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1335</th>\n",
       "      <td>18</td>\n",
       "      <td>female</td>\n",
       "      <td>36.850</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>southeast</td>\n",
       "      <td>1629.83350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1336</th>\n",
       "      <td>21</td>\n",
       "      <td>female</td>\n",
       "      <td>25.800</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>southwest</td>\n",
       "      <td>2007.94500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1337</th>\n",
       "      <td>61</td>\n",
       "      <td>female</td>\n",
       "      <td>29.070</td>\n",
       "      <td>0</td>\n",
       "      <td>yes</td>\n",
       "      <td>northwest</td>\n",
       "      <td>29141.36030</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1338 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      age     sex     bmi  children smoker     region      charges\n",
       "0      19  female  27.900         0    yes  southwest  16884.92400\n",
       "1      18    male  33.770         1     no  southeast   1725.55230\n",
       "2      28    male  33.000         3     no  southeast   4449.46200\n",
       "3      33    male  22.705         0     no  northwest  21984.47061\n",
       "4      32    male  28.880         0     no  northwest   3866.85520\n",
       "...   ...     ...     ...       ...    ...        ...          ...\n",
       "1333   50    male  30.970         3     no  northwest  10600.54830\n",
       "1334   18  female  31.920         0     no  northeast   2205.98080\n",
       "1335   18  female  36.850         0     no  southeast   1629.83350\n",
       "1336   21  female  25.800         0     no  southwest   2007.94500\n",
       "1337   61  female  29.070         0    yes  northwest  29141.36030\n",
       "\n",
       "[1338 rows x 7 columns]"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "data = pd.read_csv(\"./data/insurance.csv\")\n",
    "data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f3b347d",
   "metadata": {},
   "source": [
    "# EDA数据探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "95c3e368",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([536., 398., 129.,  86.,  35.,  59.,  57.,  32.,   2.,   4.]),\n",
       " array([ 1121.8739  ,  7386.729311, 13651.584722, 19916.440133,\n",
       "        26181.295544, 32446.150955, 38711.006366, 44975.861777,\n",
       "        51240.717188, 57505.572599, 63770.42801 ]),\n",
       " <BarContainer object of 10 artists>)"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.hist(data[\"charges\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "735f8b2d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([ 46., 105., 101., 155., 198., 283., 156., 123., 115.,  56.]),\n",
       " array([ 7.02364666,  7.42758805,  7.83152943,  8.23547082,  8.63941221,\n",
       "         9.0433536 ,  9.44729498,  9.85123637, 10.25517776, 10.65911914,\n",
       "        11.06306053]),\n",
       " <BarContainer object of 10 artists>)"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(np.log1p(data[\"charges\"]))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "772d3d2e",
   "metadata": {},
   "source": [
    "# 降噪（特征选择）--去维"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1a424216",
   "metadata": {},
   "source": [
    "通过绘制概率密度图发现，性别维度对花销影响不大"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "0bbf9946",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='charges', ylabel='Density'>"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "sns.kdeplot(data.loc[data.sex=='male','charges'],shade=True,label='male')\n",
    "sns.kdeplot(data.loc[data.sex=='female','charges'],shade=True,label='female')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "39e32fb3",
   "metadata": {},
   "source": [
    "通过绘制概率密度图发现，地区维度对花销影响不大"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "8969c52f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='charges', ylabel='Density'>"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.kdeplot(data.loc[data.region=='northwest','charges'],shade=True,label='northwest')\n",
    "sns.kdeplot(data.loc[data.region=='northeast','charges'],shade=True,label='northeast')\n",
    "sns.kdeplot(data.loc[data.region=='southwest','charges'],shade=True,label='southwest')\n",
    "sns.kdeplot(data.loc[data.region=='southeast','charges'],shade=True,label='southeast')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe4a0cc4",
   "metadata": {},
   "source": [
    "通过绘制概率密度图发现，吸烟维度对花销影响大"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "274f8d72",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='charges', ylabel='Density'>"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.kdeplot(data.loc[data.smoker=='yes','charges'],shade=True,label='yes')\n",
    "sns.kdeplot(data.loc[data.smoker=='no','charges'],shade=True,label='no')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f1b433da",
   "metadata": {},
   "source": [
    "通过绘制概率密度图发现，孩子个数维度对花销影响大"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "86cc083d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='charges', ylabel='Density'>"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.kdeplot(data.loc[data.children==0,'charges'],shade=True,label='children 0')\n",
    "sns.kdeplot(data.loc[data.children==1,'charges'],shade=True,label='children 1')\n",
    "sns.kdeplot(data.loc[data.children==2,'charges'],shade=True,label='children 2')\n",
    "sns.kdeplot(data.loc[data.children==3,'charges'],shade=True,label='children 3')\n",
    "sns.kdeplot(data.loc[data.children==4,'charges'],shade=True,label='children 4')\n",
    "sns.kdeplot(data.loc[data.children==5,'charges'],shade=True,label='children 5')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ddc3c320",
   "metadata": {},
   "source": [
    "# 特征工程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "44db2fbc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>bmi</th>\n",
       "      <th>children</th>\n",
       "      <th>smoker</th>\n",
       "      <th>charges</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>27.900</td>\n",
       "      <td>0</td>\n",
       "      <td>yes</td>\n",
       "      <td>16884.92400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>18</td>\n",
       "      <td>33.770</td>\n",
       "      <td>1</td>\n",
       "      <td>no</td>\n",
       "      <td>1725.55230</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28</td>\n",
       "      <td>33.000</td>\n",
       "      <td>3</td>\n",
       "      <td>no</td>\n",
       "      <td>4449.46200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>33</td>\n",
       "      <td>22.705</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>21984.47061</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32</td>\n",
       "      <td>28.880</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>3866.85520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1333</th>\n",
       "      <td>50</td>\n",
       "      <td>30.970</td>\n",
       "      <td>3</td>\n",
       "      <td>no</td>\n",
       "      <td>10600.54830</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1334</th>\n",
       "      <td>18</td>\n",
       "      <td>31.920</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>2205.98080</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1335</th>\n",
       "      <td>18</td>\n",
       "      <td>36.850</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>1629.83350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1336</th>\n",
       "      <td>21</td>\n",
       "      <td>25.800</td>\n",
       "      <td>0</td>\n",
       "      <td>no</td>\n",
       "      <td>2007.94500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1337</th>\n",
       "      <td>61</td>\n",
       "      <td>29.070</td>\n",
       "      <td>0</td>\n",
       "      <td>yes</td>\n",
       "      <td>29141.36030</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1338 rows × 5 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      age     bmi  children smoker      charges\n",
       "0      19  27.900         0    yes  16884.92400\n",
       "1      18  33.770         1     no   1725.55230\n",
       "2      28  33.000         3     no   4449.46200\n",
       "3      33  22.705         0     no  21984.47061\n",
       "4      32  28.880         0     no   3866.85520\n",
       "...   ...     ...       ...    ...          ...\n",
       "1333   50  30.970         3     no  10600.54830\n",
       "1334   18  31.920         0     no   2205.98080\n",
       "1335   18  36.850         0     no   1629.83350\n",
       "1336   21  25.800         0     no   2007.94500\n",
       "1337   61  29.070         0    yes  29141.36030\n",
       "\n",
       "[1338 rows x 5 columns]"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = data.drop(['region','sex'],axis=1)\n",
    "data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fabda048",
   "metadata": {},
   "source": [
    "将bmi,孩子个数离散化（分成肥胖，非肥胖，有孩子，没孩子）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "c580c653",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>bmi</th>\n",
       "      <th>children</th>\n",
       "      <th>smoker</th>\n",
       "      <th>charges</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>under</td>\n",
       "      <td>no</td>\n",
       "      <td>yes</td>\n",
       "      <td>16884.92400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>18</td>\n",
       "      <td>over</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>1725.55230</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28</td>\n",
       "      <td>over</td>\n",
       "      <td>yes</td>\n",
       "      <td>no</td>\n",
       "      <td>4449.46200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>33</td>\n",
       "      <td>under</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>21984.47061</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32</td>\n",
       "      <td>under</td>\n",
       "      <td>no</td>\n",
       "      <td>no</td>\n",
       "      <td>3866.85520</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   age    bmi children smoker      charges\n",
       "0   19  under       no    yes  16884.92400\n",
       "1   18   over      yes     no   1725.55230\n",
       "2   28   over      yes     no   4449.46200\n",
       "3   33  under       no     no  21984.47061\n",
       "4   32  under       no     no   3866.85520"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def greater(df, bmi, num_child):\n",
    "    df['bmi'] = 'over' if df['bmi'] >= bmi else 'under'\n",
    "    df['children'] = 'no' if df['children'] == num_child else 'yes'\n",
    "    return df\n",
    "\n",
    "data = data.apply(greater, axis=1, args=(30, 0))\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "6399bfe4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>charges</th>\n",
       "      <th>bmi_over</th>\n",
       "      <th>bmi_under</th>\n",
       "      <th>children_no</th>\n",
       "      <th>children_yes</th>\n",
       "      <th>smoker_no</th>\n",
       "      <th>smoker_yes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>16884.92400</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>18</td>\n",
       "      <td>1725.55230</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28</td>\n",
       "      <td>4449.46200</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>33</td>\n",
       "      <td>21984.47061</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32</td>\n",
       "      <td>3866.85520</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1333</th>\n",
       "      <td>50</td>\n",
       "      <td>10600.54830</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1334</th>\n",
       "      <td>18</td>\n",
       "      <td>2205.98080</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1335</th>\n",
       "      <td>18</td>\n",
       "      <td>1629.83350</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1336</th>\n",
       "      <td>21</td>\n",
       "      <td>2007.94500</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1337</th>\n",
       "      <td>61</td>\n",
       "      <td>29141.36030</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1338 rows × 8 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      age      charges  bmi_over  bmi_under  children_no  children_yes  \\\n",
       "0      19  16884.92400         0          1            1             0   \n",
       "1      18   1725.55230         1          0            0             1   \n",
       "2      28   4449.46200         1          0            0             1   \n",
       "3      33  21984.47061         0          1            1             0   \n",
       "4      32   3866.85520         0          1            1             0   \n",
       "...   ...          ...       ...        ...          ...           ...   \n",
       "1333   50  10600.54830         1          0            0             1   \n",
       "1334   18   2205.98080         1          0            1             0   \n",
       "1335   18   1629.83350         1          0            1             0   \n",
       "1336   21   2007.94500         0          1            1             0   \n",
       "1337   61  29141.36030         0          1            1             0   \n",
       "\n",
       "      smoker_no  smoker_yes  \n",
       "0             0           1  \n",
       "1             1           0  \n",
       "2             1           0  \n",
       "3             1           0  \n",
       "4             1           0  \n",
       "...         ...         ...  \n",
       "1333          1           0  \n",
       "1334          1           0  \n",
       "1335          1           0  \n",
       "1336          1           0  \n",
       "1337          0           1  \n",
       "\n",
       "[1338 rows x 8 columns]"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data=pd.get_dummies(data)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "666c9721",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>bmi_over</th>\n",
       "      <th>bmi_under</th>\n",
       "      <th>children_no</th>\n",
       "      <th>children_yes</th>\n",
       "      <th>smoker_no</th>\n",
       "      <th>smoker_yes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>28</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>33</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>32</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1333</th>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1334</th>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1335</th>\n",
       "      <td>18</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1336</th>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1337</th>\n",
       "      <td>61</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1338 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      age  bmi_over  bmi_under  children_no  children_yes  smoker_no  \\\n",
       "0      19         0          1            1             0          0   \n",
       "1      18         1          0            0             1          1   \n",
       "2      28         1          0            0             1          1   \n",
       "3      33         0          1            1             0          1   \n",
       "4      32         0          1            1             0          1   \n",
       "...   ...       ...        ...          ...           ...        ...   \n",
       "1333   50         1          0            0             1          1   \n",
       "1334   18         1          0            1             0          1   \n",
       "1335   18         1          0            1             0          1   \n",
       "1336   21         0          1            1             0          1   \n",
       "1337   61         0          1            1             0          0   \n",
       "\n",
       "      smoker_yes  \n",
       "0              1  \n",
       "1              0  \n",
       "2              0  \n",
       "3              0  \n",
       "4              0  \n",
       "...          ...  \n",
       "1333           0  \n",
       "1334           0  \n",
       "1335           0  \n",
       "1336           0  \n",
       "1337           1  \n",
       "\n",
       "[1338 rows x 7 columns]"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x=data.drop('charges',axis=1)\n",
    "y = data['charges']\n",
    "x.fillna(0,inplace=True)\n",
    "y.fillna(0,inplace=True)\n",
    "x"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c803024f",
   "metadata": {},
   "source": [
    "# 模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "1b4ce422",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>bmi_over</th>\n",
       "      <th>bmi_under</th>\n",
       "      <th>children_no</th>\n",
       "      <th>children_yes</th>\n",
       "      <th>smoker_no</th>\n",
       "      <th>smoker_yes</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>966</th>\n",
       "      <td>51</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>317</th>\n",
       "      <td>54</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1166</th>\n",
       "      <td>57</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>475</th>\n",
       "      <td>61</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>658</th>\n",
       "      <td>48</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1212</th>\n",
       "      <td>18</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1309</th>\n",
       "      <td>41</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>187</th>\n",
       "      <td>30</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>666</th>\n",
       "      <td>49</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>180</th>\n",
       "      <td>58</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>936 rows × 7 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      age  bmi_over  bmi_under  children_no  children_yes  smoker_no  \\\n",
       "966    51         0          1            0             1          0   \n",
       "317    54         1          0            1             0          1   \n",
       "1166   57         1          0            1             0          1   \n",
       "475    61         0          1            0             1          0   \n",
       "658    48         1          0            0             1          1   \n",
       "...   ...       ...        ...          ...           ...        ...   \n",
       "1212   18         0          1            1             0          1   \n",
       "1309   41         1          0            0             1          1   \n",
       "187    30         1          0            0             1          1   \n",
       "666    49         0          1            0             1          1   \n",
       "180    58         0          1            1             0          1   \n",
       "\n",
       "      smoker_yes  \n",
       "966            1  \n",
       "317            0  \n",
       "1166           0  \n",
       "475            1  \n",
       "658            0  \n",
       "...          ...  \n",
       "1212           0  \n",
       "1309           0  \n",
       "187            0  \n",
       "666            0  \n",
       "180            0  \n",
       "\n",
       "[936 rows x 7 columns]"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train,X_test,Y_train,Y_test = train_test_split(x,y,test_size=0.3)\n",
    "X_train"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d68b628",
   "metadata": {},
   "source": [
    "多项式回归（升维）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "f2c67279",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[51.,  0.,  1., ...,  0.,  0.,  1.],\n",
       "       [54.,  1.,  0., ...,  1.,  0.,  0.],\n",
       "       [57.,  1.,  0., ...,  1.,  0.,  0.],\n",
       "       ...,\n",
       "       [30.,  1.,  0., ...,  1.,  0.,  0.],\n",
       "       [49.,  0.,  1., ...,  1.,  0.,  0.],\n",
       "       [58.,  0.,  1., ...,  1.,  0.,  0.]])"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "poly_features = PolynomialFeatures(degree=2,include_bias=False)\n",
    "X_train_poly = poly_features.fit_transform(X_train)\n",
    "X_test_poly = poly_features.fit_transform(X_test)\n",
    "X_train_poly"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "e65bd613",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.linear_model import Ridge\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "\n",
    "reg = LinearRegression()\n",
    "ridge = Ridge(alpha=0.4)\n",
    "gra = GradientBoostingRegressor()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "79a1fe44",
   "metadata": {},
   "outputs": [],
   "source": [
    "reg.fit(X_train_poly,np.log1p(Y_train))\n",
    "Y_test_predict_reg = reg.predict(X_test_poly)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "91389707",
   "metadata": {},
   "outputs": [],
   "source": [
    "ridge.fit(X_train_poly,np.log1p(Y_train))\n",
    "Y_test_predict_ridge = ridge.predict(X_test_poly)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "e5850702",
   "metadata": {},
   "outputs": [],
   "source": [
    "gra.fit(X_train_poly,np.log1p(Y_train))\n",
    "Y_test_predict_gra = gra.predict(X_test_poly)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d791f878",
   "metadata": {},
   "source": [
    "# 模型评估"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "9f8e1f9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.39115487796215226, 0.35346854025842533)"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "reg_rmse_train = np.sqrt(mean_squared_error(y_true=np.log1p(Y_train),y_pred=reg.predict(X_train_poly)))\n",
    "reg_rmse_test = np.sqrt(mean_squared_error(y_true=np.log1p(Y_test),y_pred=Y_test_predict_reg))\n",
    "reg_rmse_train,reg_rmse_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "e97c8740",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.39115802767578217, 0.3534349147999875)"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge_rmse_train = np.sqrt(mean_squared_error(y_true=np.log1p(Y_train),y_pred=ridge.predict(X_train_poly)))\n",
    "ridge_rmse_test = np.sqrt(mean_squared_error(y_true=np.log1p(Y_test),y_pred=Y_test_predict_ridge))\n",
    "ridge_rmse_train,ridge_rmse_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "fcc42b73",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.3599303502048308, 0.37085838247584396)"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gra_rmse_train = np.sqrt(mean_squared_error(y_true=np.log1p(Y_train),y_pred=gra.predict(X_train_poly)))\n",
    "gra_rmse_test = np.sqrt(mean_squared_error(y_true=np.log1p(Y_test),y_pred=Y_test_predict_gra))\n",
    "gra_rmse_train,gra_rmse_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "ae0adca3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4724.197717263695, 4301.927246806349)"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reg_rmse_train_ = np.sqrt(mean_squared_error(y_true=Y_train,y_pred=np.exp(reg.predict(X_train_poly))))\n",
    "reg_rmse_test_ = np.sqrt(mean_squared_error(y_true=Y_test,y_pred=np.exp(Y_test_predict_reg)))\n",
    "reg_rmse_train_,reg_rmse_test_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "de13217e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4724.134213199868, 4302.053263861791)"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge_rmse_train_ = np.sqrt(mean_squared_error(y_true=Y_train,y_pred=np.exp(ridge.predict(X_train_poly))))\n",
    "ridge_rmse_test_ = np.sqrt(mean_squared_error(y_true=Y_test,y_pred=np.exp(Y_test_predict_ridge)))\n",
    "ridge_rmse_train_,ridge_rmse_test_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "5d08cc7e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4288.440430041295, 4376.0205846107465)"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gra_rmse_train_ = np.sqrt(mean_squared_error(y_true=Y_train,y_pred=np.exp(gra.predict(X_train_poly))))\n",
    "gra_rmse_test_ = np.sqrt(mean_squared_error(y_true=Y_test,y_pred=np.exp(Y_test_predict_gra)))\n",
    "gra_rmse_train_,gra_rmse_test_"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "my_test",
   "language": "python",
   "name": "my_test"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
